Static Random Access Memory (SRAM) is a type of semiconductor memory that uses bi-stable latching circuitry to store each bit. SRAM provides data storage in many electronic devices and is often used to implement programmable logic integrated circuits (ICs). Programmable logic ICs, such as field programmable gate arrays (FPGAs), are user configurable and capable of implementing digital logic operations.
The versatility of programmable ICs is advantageous in applications in which remote reconfiguration is preferred over physical replacement. However, many applications expose components to environments where radiation from cosmic or terrestrial sources is present and can cause an error in an SRAM cell. These types of errors are referred to as single event upsets (SEUs). A radiation environment contains charged particles that interact with silicon atoms. When a single heavy ion strikes a silicon substrate, it loses energy through the creation of electron-hole pairs. This results in a dense ionized track in the local region, generating a current pulse that can upset the circuit. This is known as a single upset event (SEU) or soft error. An SEU can also be caused by alpha particles. Alpha particles are generated when a neutron strikes a silicon substrate. The alpha particles travel through the substrate and generate charge clusters within a limited silicon volume. Alpha particles can be generated from high-energy neutrons as well as neutrons that have lost enough kinetic energy to be at thermal equilibrium with the operating environment. Alpha particles can also be generated through the decay of semiconductor packages which contain a small amount of radioactive isotopes.
In some circuits, an SEU only has a transient effect following the particle strike and the variation may disappear in a time depending on the logic delay of the circuit. However, in circuits containing SRAM, an SEU occurring in an SRAM cell may cause the cell to change state. When a particle hits a memory cell, the resulting current pulse can trigger a transistor of the memory cell to pass current, thereby creating a momentary change in state on one of the memory cell nodes. As a result of the momentary change, a stored state of the memory cell can be inverted or “flipped.” For example, output Q could change from logic “1” to logic “0” and the output Q-bar could change from logic “0” to logic “1”. In programmable logic circuits, which include memory cells whose stored values determine the function of each logic block, an SEU can change the function of the programmed logic. Depending on the particular memory cell affected, the upset may cause the circuit to operate improperly until the programmable logic is reconfigured.